'''问题描述
给定两个不同的正整数a,b,求一个正整数k使得gcd(a + k,b＋k)尽可能大,其中 gcd(a,b)表示a和b的最大公约数,如果存在多个k,请输出所有满足条件的k中最小的那个。
输入格式
输入—行包含两个正整数a,b,用一个空格分隔。
输出格式
输出—行包含一个正整数k。
样例输入
5 7
样例输出
1 '''

a, b = map(int, input().split())
# 辗转相除法
# gcd(a+k,b+k) == gcd(a+k,b-a)
# 个式子的最大gcd一定为 c ,只需要计算出a 最少需要增加多少可以为 c 的倍数，增量即是答案k
def gcd(a, b):
    if a > b:
        a, b = b, a

    c = b - a
    if c < a:
        c = (a // c + 1) * c
    k = c - a
    return k


print(gcd(a, b))  # 可以简化：(a % c) 表示 a 对 c 取余数，c-(a % c) 表示距离 a 最近的比 a 大的 c 的倍数。